package com.huang.ThreadLock;


import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.format.DateTimeFormatter;
import java.util.Date;

/*
*
*  日期控件   线程私有 多线程下不安全  会清空日期格式
*   1  加锁
*   2  使用 ThreadLocal 线程私有
*   3  每个线程 new SimpleDateFormat 去使用（不推荐 ）
*
*   阿里推荐手册使用：DateTimeFormatter  替代了 SimpleDateFormat
*
* */
class DateUtil{

    ThreadLocal<SimpleDateFormat> DateUtils=ThreadLocal.withInitial(()->{
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    });

    public Date pare(String StringUtil) throws ParseException {

      return   DateUtils.get().parse(StringUtil);
    }

}
public class ThreadLockDemo {
    public static void main(String[] args) {
        DateUtil util = new DateUtil();
        for (int i = 0; i < 10; i++) {
            new Thread(()->{
                  try {
                    System.out.println(util.pare("2021-8-15 11:11:11"));

                } catch (ParseException e) {
                      e.printStackTrace();
                  } finally {
                    util.DateUtils.remove();
                }

            }).start();
        }

    }
}
